﻿/**
 * PvZ Tool
 * 
 * @classname   Offset
 * @description All offsets and values for the offset
 * @author      Martomo
 * @version     0.0.2
 * 
 */
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;

namespace PvZTool
{
    public class Offset
    {
        /**
         * Offsets
         */

        // Current Level
        public readonly int posLevel = 0x4;

        /**
         * Dictionaries
         */

        // Current adventure level
        public Dictionary<string, string> levelList = new Dictionary<string, string>();

        // Achievements
        public Dictionary<string, int[]> achievementList = new Dictionary<string, int[]>();

        /**
         * Initialize data into dictionaries
         * 
         * @return void
         */
        public Offset()
        {
            // Achievement Name, Image Offset, Notification Offset
            achievementList.Add("Home Lawn Security", new int[2] { 0x4CC, 0x530 });
            achievementList.Add("Spudow!", new int[2] { 0x4CD, 0x531 });
            achievementList.Add("Explodonator", new int[2] { 0x4CE, 0x532 });
            achievementList.Add("Morticulturalist", new int[2] { 0x4CF, 0x533 });
            achievementList.Add("Don’t Pea In The Pool", new int[2] { 0x4D0, 0x534 });
            achievementList.Add("Roll Some Heads", new int[2] { 0x4D1, 0x535 });
            achievementList.Add("Grounded", new int[2] { 0x4D2, 0x536 });
            achievementList.Add("Zombologist", new int[2] { 0x4D3, 0x537 });
            achievementList.Add("Penny Pincher", new int[2] { 0x4D4, 0x538 });
            achievementList.Add("Sunny Days", new int[2] { 0x4D5, 0x539 });
            achievementList.Add("Popcorn Party", new int[2] { 0x4D6, 0x53A });
            achievementList.Add("Good Morning", new int[2] { 0x4D7, 0x53B });
            achievementList.Add("No Fungus Among Us", new int[2] { 0x4D8, 0x53C });
            achievementList.Add("Beyond The Grave", new int[2] { 0x4D9, 0x53D });
            achievementList.Add("Peking Express", new int[2] { 0x4DA, 0x53E });
            achievementList.Add("Disco Is Undead", new int[2] { 0x4DB, 0x53F });
            achievementList.Add("Alive And Planting", new int[2] { 0x4DC, 0x540 });
            achievementList.Add("Last Mown Standing", new int[2] { 0x4DD, 0x541 });
            achievementList.Add("20 Below Zero", new int[2] { 0x4DE, 0x542 });
            achievementList.Add("Flower Power", new int[2] { 0x4DF, 0x543 });
            achievementList.Add("Pyromaniac", new int[2] { 0x4E0, 0x544 });
            achievementList.Add("Lawn Mower Man", new int[2] { 0x4E1, 0x545 });
            achievementList.Add("Chill Out", new int[2] { 0x4E2, 0x546 });
            achievementList.Add("Defcorn 5", new int[2] { 0x4E3, 0x547 });
            achievementList.Add("Monster Mash", new int[2] { 0x4E4, 0x548 });
            achievementList.Add("Blind Faith", new int[2] { 0x4E5, 0x549 });
            achievementList.Add("Pool’s Closed", new int[2] { 0x4E6, 0x54A });
            achievementList.Add("Melon-y Lane", new int[2] { 0x4E7, 0x54B });
            achievementList.Add("Second Life", new int[2] { 0x4E8, 0x54C });
            achievementList.Add("Lucky Spin", new int[2] { 0x4E9, 0x54D });
            achievementList.Add("Chilli Free", new int[2] { 0x4EA, 0x54E });
            achievementList.Add("Enlightened", new int[2] { 0x4EB, 0x54F });
            achievementList.Add("Diamond Beghouler", new int[2] { 0x4EC, 0x550 });
            achievementList.Add("Greenfingers", new int[2] { 0x4ED, 0x551 });
            achievementList.Add("Wall-not Attack", new int[2] { 0x4EE, 0x552 });
            achievementList.Add("Shooting Star", new int[2] { 0x4EF, 0x553 });
            achievementList.Add("Sol Invictus", new int[2] { 0x4F0, 0x554 });
            achievementList.Add("Sproing! Sproing!", new int[2] { 0x4F1, 0x555 });
            achievementList.Add("Better Off Dead", new int[2] { 0x4F2, 0x556 });
            achievementList.Add("I, Win", new int[2] { 0x4F3, 0x557 });
            achievementList.Add("Where The Sun Don’t Shine", new int[2] { 0x4F4, 0x558 });
            achievementList.Add("Undead Space", new int[2] { 0x4F5, 0x559 });
            achievementList.Add("China Shop", new int[2] { 0x4F6, 0x55A });
            achievementList.Add("Smashing!", new int[2] { 0x4F7, 0x55B });
            achievementList.Add("Gotcha!", new int[2] { 0x4F8, 0x55C });

            // Level Value, Level Name
            levelList.Add("01", "1-1");
            levelList.Add("02", "1-2");
            levelList.Add("03", "1-3");
            levelList.Add("04", "1-4");
            levelList.Add("05", "1-5");
            levelList.Add("06", "1-6");
            levelList.Add("07", "1-7");
            levelList.Add("08", "1-8");
            levelList.Add("09", "1-9");
            levelList.Add("0A", "1-10");
            levelList.Add("0B", "2-1");
            levelList.Add("0C", "2-2");
            levelList.Add("0D", "2-3");
            levelList.Add("0E", "2-4");
            levelList.Add("0F", "2-5");
            levelList.Add("10", "2-6");
            levelList.Add("11", "2-7");
            levelList.Add("12", "2-8");
            levelList.Add("13", "2-9");
            levelList.Add("14", "2-10");
            levelList.Add("15", "3-1");
            levelList.Add("16", "3-2");
            levelList.Add("17", "3-3");
            levelList.Add("18", "3-4");
            levelList.Add("19", "3-5");
            levelList.Add("1A", "3-6");
            levelList.Add("1B", "3-7");
            levelList.Add("1C", "3-8");
            levelList.Add("1D", "3-9");
            levelList.Add("1E", "3-10");
            levelList.Add("1F", "4-1");
            levelList.Add("20", "4-2");
            levelList.Add("21", "4-3");
            levelList.Add("22", "4-4");
            levelList.Add("23", "4-5");
            levelList.Add("24", "4-6");
            levelList.Add("25", "4-7");
            levelList.Add("26", "4-8");
            levelList.Add("27", "4-9");
            levelList.Add("28", "4-10");
            levelList.Add("29", "5-1");
            levelList.Add("2A", "5-2");
            levelList.Add("2B", "5-3");
            levelList.Add("2C", "5-4");
            levelList.Add("2D", "5-5");
            levelList.Add("2E", "5-6");
            levelList.Add("2F", "5-7");
            levelList.Add("30", "5-8");
            levelList.Add("31", "5-9");
            levelList.Add("32", "5-10");
        }
    }
}
